资源
课程
AI
【AI】01-1 课:导航网格

可以创建一个 Nav Mesh Bounds Volume 覆盖在地图上,形成一个导航网络。

显示中打开 Navigation,绿色范围即为导航网络。

可以设置导航网络的静态/动态。
【AI】01-2 课:蓝图实现 AI 随机移动

复制小白人,清空变量蓝图节点,删除摄像机。

绘制蓝图。Set Timer by Event 会让 Time 时间走完后触发 AI_Move_Event,Looping 打开的话就有循环的计时器。
AIMoveTo 让 Pawn 走到导航网络中以 Acceptance Radius 为半径的圆的 Destination 处。
【AI】01-3 课:AI 行为树实现随机和跟随移动
这节课挺混乱的……

创建两种 AI 文件:行为树 Behavior Tree 和黑板 Blackboard。

创建一个 AIController,这是 Actor 下的一个子类。

现在我们有这么四个文件。蓝图 AI_BP、AI 控制器 AIController_New、行为树 AI_BT、黑板 AI_BB。

黑板里存放着 AI 逻辑所用到的变量,布尔类型的 seePlayer 表示有没有看到玩家,Position 表示玩家坐标。

AI Controller 里添加 AIPerception。

AI Perception 里设置 AI Sight config,让 AI 拥有视觉。

此时就可以在 AI Controller 的蓝图里添加 On Target Perception Updated (AIPerception) 然后这么绘制蓝图。Get Blackboard 获取黑板并 Make Literal Name 将黑板里的值 seePlayer 设为感知出的结果。

将 AI Controller 与行为树 AI_BT 绑定。至此 AI Controller 设置完成。

在蓝图 AI_BP 中,将其 Class Defaults 下的 AI Controller Class 设为 AI Controller_New。

行为树 AI_BT 绑定好 AI_BB,如此绘制行为树。

根据 seePlayer 的值开两个分叉,分叉下分别执行一个事件。至此行为树 AI_BT 设置完成。

事件 1 中设置找到玩家时的 AI 逻辑。

事件 2 中设置未找到玩家时的逻辑。

为了让 AI 移动时朝向更自然,蓝图 AI_BP 中,将 Orient Rotation to Movement 关闭。

为了让 AI 移动时朝向更自然,蓝图 AI_BP 中,将 Class Defaults 里的 Use Controller Rotation Yaw 打开。
【AI】01-4 课:靠近玩家挥拳
失败……少资源😭……
【选看】AI 跟随样条线移动思路

创建一个样条线的蓝图,往里放上一个 Spline。

放置蓝图,选中某个点后,Alt + 拖动鼠标 即可创建下一个点。

修改行为树,新建一个事件 FindPointFromSpline,没找到人时执行事件 FindPointFromSpline。

事件中定义变量 Index,记录样条线的序号。

事件的蓝图节点这么画……有些节点属实难找,慢慢整吧。